package com.hgq;

import org.json.JSONArray;
import org.json.JSONObject;

import java.io.FileNotFoundException;

/**
 * 描述:
 *
 * @author Vincent Vic
 * create 2020-03-18 21:17
 */


public class JsonMd5 {

    /**
     * 批量添加md5
     * @param JsonListPath 清单路径
     * @return
     */
    public static Boolean createJsonlistMD5(String JsonListPath){
        String jsonstr = FileUtil.readFile(JsonListPath);
        System.out.println(jsonstr);
        //将json读入json数组
        JSONArray jsonObject = new  JSONArray(jsonstr);
        JSONArray newJson = new  JSONArray(jsonstr);
        //拆出每一个json表项md5
        for (int i = 0; i < jsonObject.length(); i++) {
            JSONObject object = getMD5NewJSONObject((JSONObject) jsonObject.get(i));
            System.out.println(object);
            newJson.put(object);
        }

        try {
            FileUtil.createFile(JsonListPath,newJson.toString());
            return true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 通过json对象得到一个加入md5的新的对象
     * 添加serviceJsonMD5和serviceJarMD5
     * @param jsonObject
     * @return 新的json对象
     */
    public static JSONObject getMD5NewJSONObject(JSONObject jsonObject) {
        JSONObject object =  jsonObject;
        //System.out.println(object);
        //获取json和jar数据
        String jsonStr = FileUtil.readFile((String) object.get("serviceJsonRoot"));
        String jarStr = FileUtil.readFile((String) object.get("serviceJarRoot"));
        //两项数据和文件名称进行MD5查找
        String md5JsonStr = MD5Util.MD5Encode(jsonStr,"KjsdsuenFGSJDSjdfsfjsKhdfshgJFSD");
        String md5JarStr = MD5Util.MD5Encode(jarStr,"KjsdsuenFGSJDSjdfsfjsKhdfshgJFSD");
        object.put("serviceJsonMD5",md5JsonStr);
        object.put("serviceJarMD5",md5JarStr);
        return object;
    }

    public static String getJsonMD5(String md5Path) {

        //获取文件数据
        String dataStr = FileUtil.readFile(md5Path);
        //两项数据和文件名称进行MD5查找
        String md5JsonStr = MD5Util.MD5Encode(dataStr,"KjsdsuenFGSJDSjdfsfjsKhdfshgJFSD");

        return md5JsonStr;
    }

}